package com.sg.file.transform.api;

import com.sg.file.transform.api.dto.TransformReqeust;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.LinkedBlockingQueue;

/**
 * 文件转化服务
 * Created by asus on 2018/7/16.
 */
public interface ITransformService {
    /**
     * 非即时转换请求队列
     */
    final static LinkedBlockingQueue<TransformReqeust> TRANS_QUEUE = new LinkedBlockingQueue<>();
    /**
     * 转换中文件ID的集合（即时转化和非即时转化，多线程情况，防止重复转化，放入map中）
     */
    Map<String,String> transingMap = new ConcurrentHashMap<>();

    /**
     * 异步转化
     * @param transformReqeusts 转换参数
     * @return
     */
    public void doTransformAsyn(TransformReqeust... transformReqeusts);

    /**
     * 同步转化
     * @param transformReqeust 转换参数
     * @return
     */
    public boolean doTransformSync(TransformReqeust transformReqeust);
}
